// 函数的重载
/**
 * 如果穿的val是一个字符串赋值给obj.name
 *                数字，赋值给obj.age
 * @param val
 * **/ 
let obj:any = {}

function attr(val: string): void
function attr(val: number): void
function attr(val:any):void{
    if (typeof val === 'string'){
        obj.name = val
    } else if(typeof val === 'number') {
        obj.age = null
    }
}
attr('success')
attr(1)
// attr(false)
// 特殊场景
function add(a: number,b :number):void
function add(a: string,b :string):void
function add(a: string|number,b :string|number): void {

}

add(1,2)
add('1','2')
// add('1',2)  这里就会报错
